﻿using System;

namespace EnumApplication
{
    public enum Season_1
    {
        spring_1 = 3, // 3
        sunmmer_1, // 4
        autumn_1 = 3, //3
        winter_1 // 4
    }

    public enum Season_2 : long // 将枚举默认类型int改为long
    {
        spring_2,
        summer_2,
        autumn_2,
        winter_2
    }
    class Program
    {
        static void Main(string[] args)
        {
            Season_1 s2 = Season_1.autumn_1;
            Console.WriteLine(s2); // 显示spring_1，而不是autumn_1的原因是spring_1和autumn_1都是3，从前往后 // 第一个3是spring_1，所以就输出spring_1
            Season_1 s3 = Season_1.spring_1;
            Console.WriteLine(s2==s3); // 结果是true，表明spring_1和autumn_1是一样的
            Console.ReadKey();
        }
    }
}

/*
 
 枚举是一种类型
 适用于某些取值范围有限的数据，例如：我只想要春夏秋冬这四个字符的取值范围，如果用string的话就无法固定取值范围
 枚举语法：[访问权限修饰符] enum 枚举名 { 枚举值 }
 枚举访问权限修饰符和类是一样的，默认访问权限和类一样都是internal
 枚举名遵循大驼峰命名法
 枚举的每一个值都是一个整型，默认都是从 0 开始
以上特点上面笔记都差不多都说，然后还有两点：

 1、枚举中的元素的值可以设置为相同，但不推荐。
 2、枚举元素默认的值的类型是 int 型，可以修改为其他整型 byte、sbyte、short、ushort、int、uint、long 和 ulong。
 
 */